#include <iostream>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>

using namespace std;


int main()
{
  pid_t id = fork();
  if(id == 0){
    int count = 0;
    while(1){
      sleep(1);
      cout <<"child...:" << count << endl;
      if(count >= 5){
        break;
      }
      count++;
    }
    exit(0);
  }
  else{
    cout <<"father before..." << endl;
    wait(NULL); //阻塞等待，等待子进程退出
    cout <<"father after..." << endl;


  //  int count = 0;
  //  while(1){
  //    sleep(1);
  //    cout << "father ....: "<< count << endl;
  //    if(count == 20){
  //      wait(NULL);
  //    }
  //    count++;
  //  }
  }


  cout << "hello world"<< endl;



}

//int exe()
//{
//  //int x = 1/0;
//  _exit(12);
//  return 12;
//}
//
//int main()
//{
//  cout <<"you should running here!";
//  sleep(5);
//  _exit(13);
//
//
//  //exit() vs return ;
// // while(1){
// //   sleep(1);
// //   cout <<"." <<"\n";
// // }
//  //pid_t id = fork();
//  //cout << "hello world" << endl;
//  //sleep(1);
//
//  //if(exe() > 0){
//  //  return 0;
//  //}
//  //else{
//  //  return 1; //exe失败
//  //}
//
//
//  //if(id < 0){
//  //  cerr << "fork error" << endl;
//  //  return 1;
//  //}
//  //else if(id == 0){
//  //  //child
//  //  cout << "I am son : " << getpid() << endl;
//  //  sleep(5);
//  //}
//  //else{
//  //  cout<< "I am father " << getpid() << "My son pid: " << id << endl;
//  //  sleep(5);
//  //  //parent
//  //}
//  //return 0;
//}
